5
תגובות

שימוש בטבלה או בדיבים ?

פתח phpguide1 ,
אני רואה המון אתרים שמשתמשים בדיבים במקום בטבלה למרות שהיה צריך לעשות את מה שעשו בטבלה - האם זה נכון?

5 תשובות

avatar ענה intval ב 16 לאוקטובר 2012 #

מה שבא לך.
היתרונות של דיבים זה בדרך כלל קוד קצר וברור יותר
טבלה זה עימוד קל יותר ופחות בעיות CSS.

כל מקרה לגופו.
אם תנסה לעשות שני דיבים באותו גובה, כנראה שתבזבז שעה רק בגלל שמישהו אמר לך ש"נכון" לעשות בדיבים.
אם תנסה לעשות את מבנה העמוד בטבלה - תקבל קוד ערוך והמון תגים שמפתרסים על עמוד שלם רק בגלל שמישהו אמר לך ש"נכון" לעשות בטבלאות.

תעשה מה שייקח לך פחות זמן וייתן יותר טועלת בכל מקרה לגופו.

avatar ענה iiddaannyy ב 16 לאוקטובר 2012 #

יצא לי להתווכח עם מישהו בנושא הזה כבר. האם הכל צריך להיות בדיבים - כולל מבנים שהם טבלה או שלא.
שנינו הסכמנו שעובדים עם דיבים. לא מקודדים ולא מבצעים עימוד עם טבלאות - אלא עם דיבים.
אני אמרתי שכשיש מבנה שהוא טבלה (מערכת שעות לדוגמה, שמוצגת כטבלה) אז צריכים להשתמש בטבלה, אבל הוא התעקש שלא - שצריכים להשתמש בדיבים ולהגדיר אותם כטבלה ב-css (יש הגדרת כזו למאפיין display).

הטיעונים העיקריים שהוא העלה:

לקוח שלא מבין ב-html ורק שמע איפשהו שעבודה בטבלאות היא גרועה - לא יאהב את העבודה ברגע שיראה תגית table בקוד.
אם הלקוח לא מבין ב-html, אז למה שאני, בתור אחד שבונה לו את האתר, צריך לכתוב בצורה שגויה כדי שהוא יחשוב שהעבודה היא טובה? אם הוא לא מבין ב-html, אז פשוט נסביר לו שזו שטות אחת גמורה ושטבלאות כותבים עם תגית table ושיש סיבה לכך שהיא שם.

מנועי החיפוש לא אוהבים טבלאות.
מנועי החיפוש אולי לא אוהבים טבלאות, אבל רק כשמשתמשים בהן לא כשורה.
כשיש תגית table מנוע החיפוש יודע בוודאות שלפניו מוצגת טבלה וכך אנחנו הוא מבין את העמוד יותר טוב. אם הכל יהיה בדיבים אז אנחנו נאבד את המשמעות הסמנטית שהייתה לטבלה.

הדפדפן טוען לאט יותר את הטבלאות מאשר את הדיבים
אולי, למרות שאני ממש לא בטוח בזה מעולם לא ראיתי משהו שתומך בזה, אבל עדיין - אולי זה נכון.
גם אם זה נכון, זה לא נכון לגבי המקרה שלנו. כי ברגע שנגדיר את הדיב ב-css כטבלה (עם התכונה display) אז הדפדפן יבנה את הדיב ואת הטבלה בצורה זהה, כך שהם ייבנו באותה מהירות.
מה גם שעם תגית table אנחנו לא צריכים להגדיר ב-css את התגית שלנו כטבלה, כי היא כבר טבלה. כך שלדעתי במקרה הזה אפילו הטבלה מנצחת מבחינת מהירות (למרות שזה ממש זניח ושטותי, היום הדפדפנים מציגים כל עמוד תוך מאיות השנייה).

ב-css אפשר להגדיר תגיות כטבלה (display: table וכו'), למה? סתם? אף אחד לא הוסיף את זה סתם. זה בגלל שצריכים להשתמש בזה!
אז מה. גם אפשר להגדיר תגית כרשימה עם המאפיין display בדומה להגדרה כטבלה, ואני עדיין רואה שגם מי שמשתמש בדיב במקום ב-table ממשיך להשתמש ברשימה. את הרשימות שלו הוא לא הופך לדיבים.
וזה נכון מאוד, האופציות האלה במאפיין display לא נמצאות שם סתם. אתן דוגמה מתי צריך להשתמש ב-display: table.
נניח שאני רוצה להעלים את הטבלה, אני אתן לה display: none. אבל אם אני רוצה עכשיו להחזיר אותה? מה אני עושה? display: block לא מתאים. הטבלה תהפוך לבלוק ולא תהיה טבלה. לכן ניתן לה display: table כדי להחזיר אותה.
זו הסיבה שלכל סוג של תג יש לנו ייצוג במאפיין display.


מקווה שהבנת שכשצריכים טבלה אז משתמשים בטבלה. אין מה לפחד מהתגית table, היא לא נוראה כל כך כמו שאוהבים להציג אותה בכל מיני מקומות.
אבל חשוב לזכור - היא לא נועדה כדי לבצע את העימוד של הדף שלך.
בהצלחה. :)

avatar ענה raslin ב 16 לאוקטובר 2012 #

מניסיון רב,
כשאפשר להשתמש בטבלה, אין כמו טבלה.
גם במעבר מ rtl ל ltr זה אוטומטי,
ופחות קוד CSS

avatar ענה phpguide1 ב 16 לאוקטובר 2012 #

תודה (במיוחד לעידן).
נ.ב. בטבלה יש בעייה שאין לי מושג איך להתגבר עליה:
אני צריך לשים בכל tr טופס(form) הבעייה שזה לא מתאפשר - כלומר אי אפשר לחצות את הטופס עם תגים של TD. = הטופס לא יעבוד
האם יש פתרון? או שפשוט לא להשתמש בטבלה

avatar ענה phpguide1 ב 16 לאוקטובר 2012 #

באג באתר - יצא דאבל